工厂模式

设计原则 六:

依赖倒置原则 (Dependency Inversion Principe)

要依赖抽象,不要依赖具体类。

不要让高层组件依赖低层组件,要让“二者”依赖抽象。

  1. 变量不可以持有具体类的引用(如果使用 new 就会有具体类的引用,可以使用工厂模式帮助我们避开此问题)

  2. 不要让类派生自具体类(可以派生自接口或抽象类)

  3. 不要实现基类中已经实现的方法。(若覆盖基类已实现的方法,那此基类就不是真正适合被继承的抽象。基类中已实现的方法应该由所有子类共享。)

简单工厂模式 Simple Factory Pattern

也就是常用的在Factory类中定义静态方法负责new对象的方式。

严格地说,这种被称为“简单工厂模式”的方式根本不能称之为“模式”,虽然静态工厂方法并不是真正的“设计模式”,但这种方式的应用也很广泛,也能带来一些好处,所以我们不能因为它不是“设计模式”就抛弃它。

工厂模式 Factory Pattern

定义了一个创建对象的接口,但由子类来决定要实例化的类是哪一个。工厂方法让类把实例化推迟到了子类。

类图

例图

抽象工厂模式 Abstract Factory Pattern

提供一个接口,用创建相关或依赖对象的家族,而不需要明确指定具体类。